package org.ykh.gmall.product.controller;


//import io.minio.BucketExistsArgs;
//import io.minio.MakeBucketArgs;
//import io.minio.MinioClient;
//import io.minio.PutObjectArgs;
//import io.minio.errors.*;
import org.springframework.beans.factory.annotation.Autowired;
        import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;
import org.ykh.oos.service.OssService;
import org.ykh.gmall.result.Result;

import java.io.IOException;
        import java.util.UUID;

@RestController
@RequestMapping("/admin/product")
public class FileUploadController {

//    @Value("${minio.endpointUrl}")
//    private String endpointUrl;
//    @Value("${minio.accessKey}")
//    private String accessKey;
//
//    @Value("${minio.secreKey}")
//    private String secreKey;
//    @Value("${minio.bucketName}")
//    private String bucketName;

    /**
     * admin/product/fileUpload
     * 文件上传
     * @param file
     * @return
     */
     @PostMapping("/fileUpload")
    public Result fileUpload(MultipartFile file) throws IOException {
//         String url= null;
//
//         try {
//             // 创建 minioClient 客户端对象
//             MinioClient minioClient =
//                     MinioClient.builder()
//                             .endpoint(endpointUrl)
//                             .credentials(accessKey, secreKey)
//                             .build();
//
//             // 判断指定的桶是否存在.
//             boolean found =
//                     minioClient.bucketExists(BucketExistsArgs.builder().bucket(bucketName).build());
//             if (!found) {
//                 // 表示不存在创建桶
//                 minioClient.makeBucket(MakeBucketArgs.builder().bucket(bucketName).build());
//             } else {
//                 System.out.println("Bucket 'asiatrip' already exists.");
//             }
//
//
//             //表单name值
//             System.out.println(file.getName());
//             //上传图片文件全名称
//             System.out.println(file.getOriginalFilename());
//
//             //生成文件名称
//             String fileName= UUID.randomUUID().toString().replaceAll("-","")+System.currentTimeMillis()+file.getOriginalFilename();
//
//
//             //流上传实现
//             // 知道输入流大小
//             minioClient.putObject(
//                    PutObjectArgs.builder().bucket(bucketName).object(fileName).stream(
//                            file.getInputStream(), file.getSize(), -1)
//                            .contentType(file.getContentType())
//                            .build());
//
//
//             //组成路径，用户图片选择上传后的回显实现
//             //http://192.168.254.150:9000/gmall/%E7%BB%BF%E8%89%B2%E5%A3%81%E7%BA%B81920x1080.jpg
//             //minio的服务器地址 +桶名+文件名
//             url = endpointUrl+"/"+bucketName+"/"+fileName;
//             System.out.println(url);
//         } catch (Exception e) {
//             e.printStackTrace();
//         }

//         return Result.ok(url);

         try {
             return Result.ok(ossService.upload(null,UUID.randomUUID() + file.getName(),file.getInputStream()));
         } catch (Exception e) {
             e.printStackTrace();
             throw new RuntimeException("上传失败");
         }
     }

     @Autowired
    private OssService ossService;

}
